package sort;

/**
 * \* Created with IntelliJ IDEA.
 * \* User: Administrator
 * \* Date: 2022/4/15
 * \* Time: 12:02
 * \* To change this template use File | Settings | File Templates.
 * \* Description:简单选择排序：通过n-i次关键字之间的比较，从n-1-i个记录中选出关键字最少的
 * 的记录，并和第i（1≤ i ≤ n）个记录交换之
 * \
 */
public class SelectSort {
    public static void selectSort1(int[]arr){
        for(int i =0;i<arr.length;i++){
            for(int j=i+1;j<arr.length;j++){
                if(arr[j] <arr[i]){
                    int tmp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = tmp;
                }
            }
        }

    }
//优化
    public static void selectSort2(int[]arr){
        for(int i =0;i<arr.length;i++){
            int min = i;
            for(int j=i+1;j<arr.length;j++){
                if(arr[j] <arr[min]){
                    min = j;//记录最小值下标
                }
            }
            if(min !=i){
                int tmp = arr[i];
                arr[i] = arr[min];
                arr[min] = tmp;
            }
        }

    }
    public static void main(String[] args) {
        int[] array = {2,3,1,4,6,3,4,77,6};
        selectSort3(array);
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i]+" ");
        }


    }

    public static void selectSort3(int[]arr){

        for (int i = 0;i<arr.length;i++){
            int min = i;
            for(int j = i+1;j<arr.length;j++){
                if(arr[min] > arr[j]){
                    min =j;
                }
            }
            if(min != i){
                int tmp = arr[min];
                arr[min] = arr[i];
                arr[i] = tmp;
            }
        }
    }

}
